怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具 您所在的位置:网站首页 war robots为什么打不开 怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具

怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具

2023-04-13 18:11| 来源: 网络整理| 查看: 265

怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具 发布时间:2023-04-13 09:35:31 来源:亿速云 阅读:76 作者:iii 栏目:开发技术

本文小编为大家详细介绍“怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、技术介绍

1.chatgpt-java是一个OpenAI的Java版SDK,支持开箱即用。目前以支持官网全部Api。支持最新版本GPT-3.5-Turbo模型以及whisper-1模型。

2.Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

3.ChatUI Pro 是在ChatUI 基础组件的基础上,结合阿里小蜜的最佳实践,沉淀和总结出来的一个开箱即用的,可快速搭建智能对话机器人的框架。它简单易上手,通过简单的配置就能搭建出对话机器人;同时它强大易扩展,通过丰富的接口和自定义卡片满足各种定制化需求。

二、项目介绍

本项目采用了GPT-3.5-Turb模型作为基础,通过springboot结合redis、chat-java以及chatUI Pro实现简单的人工智能机器人。因为访问openAI的API返回结果比较慢,项目中当前端将问题请求发送到后端后,后端会将生成一个UUID,返回前端,同时后端也会重新开启一个线程去访问openAI,当openAI返回结果后,后端将UUID做为key,openAI返回的结果做为value存储到redis中。前端会根据后端第一次请求的结果中UUID做为参数每个5s请求一次后端的answer接口,answer接口会根据UUID查询redis是否有值,直到后端answer接口返回结果后前端将结果输出给用户

三、项目搭建

1.创建springboot项目,项目命名mychatgpt。

怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具

2.导入项目pom的依赖

    4.0.0              org.springframework.boot         spring-boot-starter-parent         2.5.12                    com.xyh     mychatgpt     0.0.1-SNAPSHOT     mychatgpt     Demo project for Spring Boot              8                                org.springframework.boot             spring-boot-starter-data-redis                               org.springframework.boot             spring-boot-starter-web                               org.springframework.boot             spring-boot-starter-aop                               org.springframework.boot             spring-boot-starter-test                                                   org.apache.logging.log4j                     log4j-api                                                       org.apache.logging.log4j                     log4j-to-slf4j                                           test                               org.projectlombok             lombok             true                               org.apache.httpcomponents             httpcore                               com.theokanning.openai-gpt3-java             api             0.10.0                               com.theokanning.openai-gpt3-java             service             0.10.0                               com.theokanning.openai-gpt3-java             client             0.10.0                               cn.hutool             hutool-all             5.8.12                               com.unfbx             chatgpt-java             1.0.5                               mysql             mysql-connector-java             8.0.17                               com.alibaba             druid-spring-boot-starter             1.2.8                               com.baomidou             mybatis-plus-boot-starter             3.5.2                                                   com.baomidou                     mybatis-plus-generator                                                             com.github.yulichang             mybatis-plus-join             1.4.2                                        com.apifan.common             common-random             1.0.19                                        junit             junit             test                                                          org.springframework.boot                 spring-boot-maven-plugin                                                                                            org.projectlombok                             lombok                                                                                          

3.编写chatGPT实现工具类

package com.xyh.mychatgpt.utils; import com.unfbx.chatgpt.OpenAiClient; import com.unfbx.chatgpt.entity.chat.ChatChoice; import com.unfbx.chatgpt.entity.chat.ChatCompletion; import com.unfbx.chatgpt.entity.chat.Message; import com.unfbx.chatgpt.entity.common.Choice; import com.unfbx.chatgpt.entity.completions.Completion; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.Arrays; import java.util.List; /**  * @author xiangyuanhong  * @description: TODO  * @date 2023/3/21上午9:28  */ @Component public class ChatGPTUtils {     @Value("${xyh.openai.key}")     private  String token;     @Autowired     private RedisUtils redisUtils;     public void ask(String model,String question,String uuid){         StringBuffer result=new StringBuffer();         try {             OpenAiClient openAiClient = new OpenAiClient(token, 3000, 300, 300, null);             if("GPT-3.5-Turb".equals(model)){             // GPT-3.5-Turb模型             Message message=Message.builder().role(Message.Role.USER).content(question).build();             ChatCompletion chatCompletion = ChatCompletion.builder().messages(Arrays.asList(message)).build();             List resultList = openAiClient.chatCompletion(chatCompletion).getChoices();             for (int i = 0; i {             chatGPTUtils.ask("GPT-3.5-Turb", finalQuestion,uuid);         });         return R.ok().put("data",uuid);     }     @GetMapping("/answer")     public R answer(String uuid){         String result=redisUtils.get(uuid);           return R.ok().put("data",result);     } }

5.前端页面开发,在项目templates目录创建index.html页面,并引入chatUI pro相关文件

                             滴答小爱     

6.创建setup.js实现chatUI Pro与后端通信交换。

var bot = new ChatSDK({     config: {         // navbar: {         //     title: '滴答小爱'         // },         robot: {             avatar: 'images/chat.png'         },         // 用户头像         user: {             avatar: 'images/user.png',         },         // 首屏消息         messages: [             {                 type: 'text',                 content: {                     text: '您好,小爱为您服务,请问有什么可以帮您的?'                 }             }         ],         // 快捷短语         // quickReplies: [         //     { name: '健康码颜色',isHighlight:true },         //     { name: '入浙通行申报' },         //     { name: '健康码是否可截图使用' },         //     { name: '健康通行码适用范围' },         // ],         // 输入框占位符         placeholder: '输入任何您想询问的问题',     },     requests: {         send: function (msg) {             if (msg.type === 'text') {                 return {                     url: '/ask',                     data: {                         question: msg.content.text                     }                 };             }         }     },     handlers: {         /**          *          * 解析请求返回的数据          * @param {object} res - 请求返回的数据          * @param {object} requestType - 请求类型          * @return {array}          */         parseResponse: function (res, requestType) {             // 根据 requestType 处理数据             if (requestType === 'send' && res.code==0) {                 // 用 isv 消息解析器处理数据                 $.ajaxSettings.async=false;                 var answer="";                 var isOK=false;                 while(!isOK){                     $.get("/answer",{uuid:res.data},function(result){                         console.log(result.data)                         if(null != result.data){                             isOK=true;                             answer=result.data;                         }                     },"json");                     if(!isOK){                         sleep(5000);                     }                 }                 $.ajaxSettings.async=true;                 return [{"_id":res.data,type:"text",content:{text:answer},position:"left"}];             }         },     }, }); function sleep(n) { //n表示的毫秒数     var start = new Date().getTime();     while (true) {         if (new Date().getTime() - start > n) {             break;         }     } } bot.run();

7.项目搭建完成后启动springboot项目然后访问http://ip:端口就可以。项目最终效果:http://hyrun.vip/

四、项目展示

怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具

读到这里,这篇“怎么使用springboot+chatgpt+chatUI Pro开发智能聊天工具”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读: 如何理解SpringBoot 中的约定优于配置 SpringBoot自动装配原理是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springboot chatgpt 上一篇新闻:怎么使用chatgpt解决隐藏的bug 下一篇新闻:ChatGPT-4.0有哪些功能 猜你喜欢 C语言数据结构图如何创建与遍历 node编写文件上传的接口的坑如何解决 Docker中容器的创建与启停问题怎么解决 Java+JFrame怎么实现贪吃蛇小游戏 MySQL常用引擎有哪些 C语言怎么遍历邻接表简单路径 echarts如何实现饼图与样式设置 C语言算法积累分离数位怎么实现 PHP如何实现常见排序算法 echarts的y轴刻度计算需求实例分析


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有